//描述一个电平敏感的1位数据锁存器
//制作者：FPGA研究者
//时间：2022年6月17日

//方法一;
/*
module latch1(ain,sel,out);
   input ain,sel;
	output reg out;
 always@(*) begin
   if(sel) begin 
	 out=out;
	 end
	else 
	 out=ain;
	end
endmodule
*/

/*
module latch1(ain,sel,out);
   input ain,sel;
	output out;
 assign out=sel?out:ain;
endmodule
*/

/*
//带置位，带复位的一位数据锁存器 ,低电平有效
module latch1(ain,set,reset,sel,out);
    input ain,set,reset,sel;
	 output  out; 
assign out=(!set)?1:((!reset)?0:(sel?out:ain)) ;
endmodule
*/
	
//带置位，带复位的8位数据锁存器 ,低电平有效
module latch1(ain,set,reset,sel,out);
    parameter WIDTH=8;
    input [WIDTH-1:0]ain;
	 input set,reset,sel;
	 output[WIDTH-1:0]  out; 
assign out=(!set)?1:((!reset)?0:(sel?out:ain)) ;
endmodule
	